1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Data;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10
11 namespace SoftQuanLyNhaHang.Views
12 {
13
14
15
16 public partial class uctKhachHang_tbl : UserControl
17 {
18 public uctKhachHang_tbl()
19 {
20 InitializeComponent();
21 }
22
23 public static uctKhachHang_tbl uctKhTbl = new uctKhachHang_tbl();
24
25 //khởi tạo gọi trong menuscript
26 //public static uctKhachHang_tbl uctKh_tbl = new uctKhachHang_tbl();
27
28
29
30 int _idKhachHang = 0;
31 string _tenKhachHang = string.Empty;
32 string _soDienThoai = string.Empty;
33 string _diaChi = string.Empty;
34 int _trangThai = 1;
35 double _diemTichLuy =0;
36 double _tongTien =0;
37 double _tienKhach=0;
38 double _tienTraLai = 0;
39 //DateTime _ngayMuaHang = DateTime.Now;
40 string _ghiChu = string.Empty;
41 string _TrangThaiGiaoDich = string.Empty;
42 int _pageSize = 30;
43 int _pageIndex = 1;
44 int _tongSoBanGhi = 0;
45 int _stt = 0;
46
47 private DateTime getDayHome;
48
49 private void uctKhachHang_tbl_Load(object sender, EventArgs e)
50 {
51
52 //this.HienThiDanhSachKhachHang(_idKhachHang, txtHoVaTen.Text.Trim(), txtSoDienThoai.Text.Trim());
53 }
54
55 //hien thi danh sach khach hang
56 public void HienThiDanhSachKhachHang(int idKhachHang, string tenKhachHang, string soDienThoai, DateTime ngayMuaHang, int stt)
57 {
58 getDayHome = ngayMuaHang;
59
60 dgvDanhSachKhMuaH.Rows.Clear();
61 //Ẩn cột đầu tiên
62 dgvDanhSachKhMuaH.RowHeadersVisible = false;
63 //-https://stackoverflow.com/questions/17404969/right-align-a-column-in-datagridview-doesnt-work
64 this.dgvDanhSachKhMuaH.Columns["STT"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
65 this.dgvDanhSachKhMuaH.Columns["STT"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
66 //this.dgvDanhSach.Columns["STT"].SortMode = DataGridViewColumnSortMode.NotSortable;
67
68 this.dgvDanhSachKhMuaH.Columns["IdKhachHang"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
69 this.dgvDanhSachKhMuaH.Columns["IdKhachHang"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
70
71 this.dgvDanhSachKhMuaH.Columns["TongSoMatHang"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
72 this.dgvDanhSachKhMuaH.Columns["TongSoMatHang"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
73
74 this.dgvDanhSachKhMuaH.Columns["TongTien"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
75 this.dgvDanhSachKhMuaH.Columns["TongTien"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
76
77
78 this.dgvDanhSachKhMuaH.Columns["TienKhach"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
79 this.dgvDanhSachKhMuaH.Columns["TienKhach"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
80
81
82 this.dgvDanhSachKhMuaH.Columns["TienTraLai"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
83 this.dgvDanhSachKhMuaH.Columns["TienTraLai"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
84
85 this.dgvDanhSachKhMuaH.Columns["NgayMua"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
86 this.dgvDanhSachKhMuaH.Columns["NgayMua"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
87
88 if (stt == 0)
89 {
90 _stt = 0;
91 _pageSize = 30;
92 _pageIndex = 1;
93 }
94
95
96 DataTable dtKh = new DataTable();
97
98 dtKh = Controllers.KhachHangCtrl_tbl.FillDataSet_KhachHang_BySearch(idKhachHang, tenKhachHang, soDienThoai, _diaChi, _trangThai, _diemTichLuy, _tongTien, _tienKhach, _tienTraLai, DateTime.Now, _ghiChu,_TrangThaiGiaoDich, _pageSize, _pageIndex).Tables[0];
99
100 if (dtKh.Rows.Count > 0)
101 {
102 _tongSoBanGhi = Int32.Parse(dtKh.Rows[0]["TongSoBanGhi"].ToString());
103
104
105 double tienTraLai = 0;
106 foreach (DataRow item in dtKh.Rows)
107 {
108 _stt += 1;
109 int n = dgvDanhSachKhMuaH.Rows.Add();
110
111 dgvDanhSachKhMuaH.Rows[n].Cells["IdKhachHang"].Value = item["IdKhachHang"].ToString();
112 dgvDanhSachKhMuaH.Rows[n].Cells["STT"].Value = _stt.ToString();
113
114 dgvDanhSachKhMuaH.Rows[n].Cells["HoVaTen"].Value = item["TenKhachHang"].ToString();
115
116 dgvDanhSachKhMuaH.Rows[n].Cells["SoDienThoai"].Value = item["SoDienThoai"].ToString();
117 dgvDanhSachKhMuaH.Rows[n].Cells["DiaChi"].Value = item["DiaChi"].ToString();
118 dgvDanhSachKhMuaH.Rows[n].Cells["GhiChu"].Value = item["GhiChu"].ToString();
119
120
121 dgvDanhSachKhMuaH.Rows[n].Cells["TongSoMatHang"].Value = item["TongSoMatHang"].ToString();
122
123 dgvDanhSachKhMuaH.Rows[n].Cells["TongTien"].Value = CauHinhHeThong.Format_SoDeHienThi(CauHinhHeThong.Format_SoDeTinhToan(item["TongTien"].ToString(), false), true);
124 dgvDanhSachKhMuaH.Rows[n].Cells["TienKhach"].Value = CauHinhHeThong.Format_SoDeHienThi(CauHinhHeThong.Format_SoDeTinhToan(item["TienKhach"].ToString(), false), true);
125
126 tienTraLai = CauHinhHeThong.Format_SoDeTinhToan(item["TienTraLai"].ToString(), false);
127
128 dgvDanhSachKhMuaH.Rows[n].Cells["TienTraLai"].Value = CauHinhHeThong.Format_SoDeHienThi(tienTraLai, true);
129
130 if (tienTraLai < 0)
131 {
132 dgvDanhSachKhMuaH.Rows[n].Cells["TrangThai"].Value = "Ghi nợ";//
133
134 }
135
136 dgvDanhSachKhMuaH.Rows[n].Cells["NgayMua"].Value = CauHinhHeThong.Format_HienThiNgayThangNam(item["NgayMuaHang"].ToString(), true);
137
138 }
139 }
140 else
141 {
142 _tongSoBanGhi = 0;
143 }
144
145 lblTongSoBanGhiHienThi.Text = CauHinhHeThong.HienThiSoBanGhiTuA_DenB(_pageSize, _pageIndex, _stt.ToString(), _tongSoBanGhi.ToString());
146
147 }
148
149 private void btnTiep_Click(object sender, EventArgs e)
150 {
151 if (_tongSoBanGhi > (_pageSize * _pageIndex))
152 {
153 _pageIndex = _pageIndex + 1;
154
155 this.HienThiDanhSachKhachHang(_idKhachHang, txtHoVaTen.Text.Trim(), txtSoDienThoai.Text.Trim(), getDayHome, _stt);
156 }
157 else
158 {
159 return;
160 }
161 }
162
163 private void btnSau_Click(object sender, EventArgs e)
164 {
165 if ((_pageSize * _pageIndex) > _pageSize)
166 {
167 _pageIndex = _pageIndex - 1;
168 _stt = _pageSize * _pageIndex - _pageSize;
169
170 this.HienThiDanhSachKhachHang(_idKhachHang, txtHoVaTen.Text.Trim(), txtSoDienThoai.Text.Trim(), getDayHome, _stt);
171
172 }
173 else
174 {
175 _pageIndex = 1;
176 }
177 }
178
179 private void txtHoVaTen_TextChanged(object sender, EventArgs e)
180 {
181 _pageSize = 30;
182 _pageIndex = 1;
183 _stt = 0;
184
185 this.HienThiDanhSachKhachHang(_idKhachHang, txtHoVaTen.Text.Trim(), txtSoDienThoai.Text.Trim(), getDayHome, _stt);
186 }
187
188 private void txtSoDienThoai_TextChanged(object sender, EventArgs e)
189 {
190 _pageSize = 30;
191 _pageIndex = 1;
192 _stt = 0;
193
194 this.HienThiDanhSachKhachHang(_idKhachHang, txtHoVaTen.Text.Trim(), txtSoDienThoai.Text.Trim(), getDayHome, _stt);
195 }
196
197 private void txtMaKhachHang_TextChanged(object sender, EventArgs e)
198 {
199 _pageSize = 30;
200 _pageIndex = 1;
201 _stt = 0;
202
203 this.HienThiDanhSachKhachHang(_idKhachHang, txtHoVaTen.Text.Trim(), txtSoDienThoai.Text.Trim(), getDayHome, _stt);
204 }
205
206 /*
207 private bool IsRepeatedCellValue(int rowIndex, int colIndex)
208 {
209 DataGridViewCell currCell =
210 dgvDanhSach.Rows[rowIndex].Cells[colIndex];
211 DataGridViewCell prevCell =
212 dgvDanhSach.Rows[rowIndex - 1].Cells[colIndex];
213
214 if ((currCell.Value == prevCell.Value) ||
215 (currCell.Value != null && prevCell.Value != null &&
216 currCell.Value.ToString() == prevCell.Value.ToString()))
217 {
218 return true;
219 }
220 else
221 {
222 return false;
223 }
224 }
225
226
227
228 private void dgvDanhSach_CellFormatting(DataGridViewCellFormattingEventArgs args)
229 {
230 // Call home to base
231 dgvDanhSach_CellFormatting(args);
232
233 // First row always displays
234 if (args.RowIndex == 0)
235 return;
236
237
238 if (IsRepeatedCellValue(args.RowIndex, args.ColumnIndex))
239 {
240 args.Value = string.Empty;
241 args.FormattingApplied = true;
242 }
243 }
244
245 private void dgvDanhSach_CellPainting(DataGridViewCellPaintingEventArgs args)
246 {
247 dgvDanhSach_CellPainting(args);
248
249 args.AdvancedBorderStyle.Bottom =
250 DataGridViewAdvancedCellBorderStyle.None;
251
252 // Ignore column and row headers and first row
253 if (args.RowIndex < 1 || args.ColumnIndex < 0)
254 return;
255
256 if (IsRepeatedCellValue(args.RowIndex, args.ColumnIndex))
257 {
258 args.AdvancedBorderStyle.Top =
259 DataGridViewAdvancedCellBorderStyle.None;
260 }
261 else
262 {
263 //args.AdvancedBorderStyle.Top = AdvancedCellBorderStyle.Top;
264 }
265 }
266
267 private void dgvDanhSach_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
268 {
269
270 }
271 */
272
273 }
274 }